Scalable scroll controller

ABSTRACT

A method for accessing a data field having fine resolution is disclosed. The method includes providing a scalable scroll controller with a scale controller to modify a scale for controlling a magnification for accessing data within the data field. The method also includes receiving a first user event to select the scale controller and receiving a second user event to modify a position of the scale controller. The scale is adjusted based on the position of the scale controller. An apparatus for performing the method is also disclosed.

This application is a continuation application of U.S. patentapplication Ser. No. 09/287,720, filed Apr. 7, 1999, issued as U.S. Pat.No. 6,486,896 B1.

BACKGROUND OF THE INVENTION

1. Field of the Invention

This invention is related to the field of user interfaces and programcontrols. More particularly, this invention is directed to a method andapparatus For allowing simultaneous zooming and panning of content in agraphical user interface display.

2. Description of Background

A portion of the disclosure of this patent document contains materialwhich is subject to copyright protect on. The copyright owner has noobjection to the facsimile reproduction by any one of the patentdisclosure, as it appears in the Patent and Trademark Office patentfiles or records, but otherwise reserves all copyright rightswhatsoever.

Many types of data have a broad range and a fine resolution. Forexample, a video clip is composed of a continuum of frames. The videoclip can store up to a series of tens of thousands of frames. Thus, ithas approximately five orders of magnitude. Similarly, a five seconddigital audio chip may require five orders of magnitude to access eachbit sample. These types of data are often linear in the sense that thereare starting and ending points and many Linked “frames” or points ofdata between the starting and ending points.

In order to edit a video clip, one needs frame accurate control over theentire medium. In other words, a user must be able to readily pick outone particular desired frame nestled among tens of thousands of frames.It becomes readily apparent that tasks such as adjusting key frames inan video film or manipulating audio samples, can quite time consumingand frustrating. What is needed is a method or apparatus which lets theuser find and access one particular desired piece of data which islocated among a broad range of data.

In the past, access to a particular point or frame of data wasaccomplished by using scroll bars. However, scroll bars typically canhandle only two orders of magnitude. Consequently, a scroll bar wouldeither need to be approximately twenty yards long in order to grantaccess to each frame of a video disk or provide a very compressed viewof the frames in the video clip. The former user interface isimpracticable, the latter would not be useful.

Another method used in the prior art was to implement VCR-type controls.This allows the user control over the entire range of data. However,these types of controls lack selectivity. For example, it would bedifficult for a user to stop precisely on one particular desired frameor data point. The user would probably either overshoot or undershootthe desired frame or data point and would need to go back and forthsearching for that particular frame or data point. What is needed is amethod that gives the user control over a broad range, while giving theuser random access to any particular piece of data within that range,especially at fine resolutions.

Yet another method used in the prior art to solve this problem is toprovide one control for magnification of the data and another controlfor scanning at the selected magnification. One product utilizing hastechnique Is SoundEdit™ by Farallon Computing, Inc. However, thisimplementation has a drawback in that it requires two separate controls.A further disadvantage is that these two controls cannot be operatedsimultaneously. A user has to change the magnification controlindependently from the navigation control. Such a system results inwasted time and effort. Thus, what is needed is a method and apparatusfor providing the user with easy and fluid interaction over varyingmagnification scales while simultaneously providing the user with thecapability of scanning at that magnification scale.

SUMMARY

In view of the problems associated with providing a user with controlover a broad range of data, particularly linear data, one objective ofthe present invention is to provide the user with access or data down tovery fine resolutions in a simple, natural, and effective method byutilizing a cursor positioning device such as a mouse, a paddle, atrackball, touch tablet, joystick or other input device having thecapability of providing control for cursor movement in at least a singledimension.

Another objective is to increase the speed, accuracy, and selectivity ofaccessing data over a broad range by providing the user with easy andfluid interaction over varying magnification scales, whilesimultaneously providing the user with the capability of scanning thedata at that magnification scale.

A method and device for accessing a broad data field having a fineresolution is described. A default scale is provided and is representedand controlled by a scalable scroll bar with a width that isproportional to the scale that is being represented. The scale controlsthe magnification at which the user accesses and/or examines the data.At a selected magnification, there is a particular range of the data(from one point in the data to another point in the data) that isprovided. The present invention allows the user to modify the scale,which also changes the displayed range to be over different portions ofthe data field. The scale is varied by the user by manipulating thescalable scroll bar. Thus, the user may “zoom in” and “zoom out” todifferent portions of the data field. In addition, by moving the rangeto encompass different portions of the data field, the user can scanthat portion of the data field.

In one embodiment of the present invention, a particular piece of datawithin the broad data field can be accessed. First, the scale isselectively varied, thereby controlling a range within the data field.Then, the range is moved to encompass a portion of the data field inwhich the piece of data resides. Next, the scale is successivelydecreased while, simultaneously, points successively closer to thelocation are kept within the range. The scale is decreased, whichincreased the magnification (i.e., increasing the range's resolution).The range is moved in this manner until the piece of data is actuallyaccessed.

This is accomplished by using an input device having at least one degreeof freedom (e.g., a mouse, a paddle, trackball, touch tablet, joystick,etc.). For example, movement can be along an x or an y-axis in aCartesian coordinate system. Combined with the closing of a switch,movement along the axis may control the selection of the scale and therange at that scale. In preferred embodiment, the data from the inputdevice can be remapped to control the position of a cursor on a displayscreen in one axis of movement, instead of the scale and range. In otherwords, the same input device can control either the position of a cursoror control the scale and range, simply by remapping the axes of theinput device.

Other objects, features, and advantages of the present invention will beapparent from the accompanying drawings and from the detaileddescription that follows below.

BRIEF DESCRIPTION OF THE DRAWINGS

The present invention is illustrated by way of example, and not by wayof limitation, in the figures of the accompanying drawings and in whichLike reference numerals refer to similar elements and in which:

FIG. 1 shows an example of the reduction of a full sized textualdocument as implemented by one embodiment of the present invention.

FIG. 2 is a block diagram of the computer system upon which the presentinvention may be implemented.

FIG. 3 is a block diagram of one embodiment of the present inventionwherein a mouse is utilized.

FIG. 4 is a screen shot of a timeline controller integrating a scalablescroll controller in accordance with one embodiment of the presentinvention.

FIG. 5 are a series of screen shots of the timeline controller atvarious time scales ranging from decades to seconds.

FIG. 6 is a screen shot of a multimedia controller integrating thescalable scroll controller in accordance with one embodiment of thepresent invention.

FIG. 7 depicts the multimedia controller where the scalable scrollcontroller has been selected by the user to decrease the amount of thetimeline that is displayed.

FIG. 8 depicts the multimedia controller where the scalable scrollcontroller has been selected by the user to further decrease the amountof the timeline that is displayed.

FIG. 9 depicts the multimedia con-roller where the scalable scrollcontroller has been selected by the user to move the range of thetimeline that is displayed.

FIG. 10 is a flow chart of a method of operation of the presentinvention.

FIG. 11 is a block diagram of the contents of a memory in the computersystem of FIG. 2.

DETAILED DESCRIPTION

A method and apparatus for providing the user with easy and fluidinteraction over varying magnification scales, while simultaneouslyproviding the user with the capability of scanning at that scale isdescribed. In the following description, the present invention isimplemented in reference to a zooming timeline controller and a zoomingmultimedia editor/viewer.

It will be obvious, however, to one skilled in the art that the presentinvention can equally be applied to other implementations, as well. Forexample, the present invention can be used in conjunction with editingtextual documents. This invention enhances the user's ability to view atextual document at any point in its creation history by enabling theuser to control the historical view of a document that may have beenaround for years and modified on a time scale of seconds. Thus, thepresent invention enhances the control of a document by showing thestate of the document as it appeared at a selected time. On the otherhand, the present invention can be used to graphically reduce adocument. By using the structure implicit in the document, a moresemantically valid zoom can be achieved. Outlines can progressivelycollapse the most-indented items, showing just structure and spacing.FIG. 1 shows the reduction of a full sized textual document. Thesequence of steps for a textual document as it is zoomed out are:squeezing out white space, squashing all but the first lines of eachparagraph, eliminating all but the first lines, eliminating all bodytext while leaving headings and sub-headings, then eliminating subheads,leaving headings only. Similarly, computer programs may also be editedin this manner.

Referring to FIG. 2, the computer system, upon which the preferredembodiment of the present invention my be implemented is shown ascomputer system 100. Computer system 100 comprises a bus or othercommunication means 101 for communicating information, and a processingmeans 102 coupled with bus 101 for processing information.

Computer system 100 further comprises a random access memory (RAM) orother dynamic storage device 104 (referred to as main memory), coupledto bus 101 for storing information and instructions to be executed byprocessor 102. For example, code or computer readable instructions iscontained in main memory 104. Main memory 104 also may be used forstoring temporary variables or other intermediate information duringexecution of instructions by processor 102.

Computer system 100 also comprises a read only memory (ROM) and/or otherstatic storage device 106 coupled to bus 101 for storing staticinformation and instructions for processor 102, and a data storagedevice 107 such as a magnetic disk or optical disk and its correspondingdesk drive. Data storage device 107 is coupled to bus 101 for storinginformation and instructions.

Computer system 100 may further be coupled to a display device 121, suchas a cathode ray tube (CRT) coupled to bus 101 for displayinginformation to a computer user. An alphanumeric input device 122,including alphanumeric and other keys, may also be coupled to bus 101 orcommunicating information and command selections to processor 102. Anadditional user input device is cursor control 123, such as a mouse, atrackball, or cursor direction keys, coupled to bus 101 forcommunicating direction information and command selections to processor102, and for controlling cursor movement on display 121. This inputdevice typically has two degrees of freedom in two axes, a first axis(e.g. x) and a second axis (e.g. y), which allows the device to specifyany position in a plane. Another device which may be coupled to bus 101is hard copy device 124 which may be used for printing instructions,data, or ether information on a medium such as paper, film, or similartypes of media. Lastly, computer system 100 may be coupled to a devicefor sound recording and/or playback 125 such an audio digitizer meanscoupled to a microphone for recording information. Further, the devicemay include a speaker which is coupled to a digital to analog (D/A)converter for playing back the digitized seconds.

In one embodiment of the present invention, a mouse is used. FIG. 3 is ablock diagram shorting this embodiment. A mouse 130 is a small hand-heldbox-like device which is coupled to the computer system 100 by a cable.A sensing mechanism 132 monitors the magnitude and direction of movementof mouse 130 and generates an output signal based thereon. This signalis sent to computer 100 for processing. After processing, computer 100sends a signal to display device 121, directing the movement of a cursoron the display device screen. One or more push-down button(s) 131 areprovide on the mouse 130. By depressing button(s) 131, a signal is sentto computer 100 that a desired location of the cursor on display device121 has been selected. The combination of moving mouse 130 to point thecursor to an object on the display screen and pressing the button(s)131, while the cursor is pointing to the object to select the object, iscalled “point and click.”

If mouse 130 is moved while there is a depression on button(s) 131 whenthe cursor is on a graphical user interface device or widget, then thegraphical user interface device will be moved. For example, theplacement of the cursor on a graphical user interface control such as ascroll bar and the depression of button(s) 131 will allow the movementof the scroll bar to track the movement of the cursor by mouse 130.

Some parameters need an approximate setting. Others demand a moreprecise value. When controlling a remapped approximate parameter, eachunit of motion of the mouse can effect a change in he value of theparameter. For example, if the mouse has units of movements in onehundredth of an inch, each five unit of mouse movements can translate toa movement of one pixel of the cursor. For values that need to becontrolled more precisely, one embodiment is to reduce the mouse'smotion units by a certain factor. Otherwise, the mouse's movementsbecome too sensitive. For example, the number of units of mousemovements that will cause the cursor to move one pixel can be increasedto ten.

When values are assigned to parameters, one embodiment is to make themouse axes consistent with a positive or a negative change in thatparameter's value. In other words, if a slider, scroll bar, or othergraphic widget is used to represent the value that the mouse iscontrolling, the mouse axes are remapped to the dominant graphic axes.For example, if the slider is graphically oriented vertically, upwardmotion of the mouse roves the slider knob up. Even if a parameter valuehas no graphic representation in the system, a standard is appliedconsistently. One embodiment of this concept is to define rightward anddownward movement to be “more” or increase in value, and leftward andupward movement to be “less” or decrease in value.

In one embodiment of the present invention, the mouse is used to allow auser to simultaneously adjust both the control of the time scale and thecontrol for scanning at the selected time scale. This is accomplished byallowing “click and drag” of the mouse to controlling the time scale andthe selected value at that time scale. In other words, by depressing themouse button while the cursor is positioned over certain interfaceelements, the movement of the mouse adjusts the time scale and selectedvalue at that time scale. These parameters and their control will beexplained in greater detail below.

In another embodiment, cursor control may be performed through the useof a voice command recognition system, interfaced through use of soundrecording and playback device 125. Thus, the user provides controls byvoice to move and provide selection commands for the cursor. Forexample, the user may provide commands to zoom-in on the range by saying“zoom-in 10%” to sound recording and playback device 125. The user mayalso control the movement of the range that is displayed by saying“shift right, 5 seconds”, which shifts the range that is displayed by 5seconds (alternatively, the user may shift the displayed range by anyother time factor). The control provided by cursor control device 123may therefore be replicated by voice commands.

The present invention as applied to a timeline controller enables theuser to browse the time domain for a range of time at any time scale(magnification) or choose an incremental time value by successiverefinement. The timeline controller zooms on a time continuum forpicking a date/time. This is accomplished by utilizing a mouse with amodified scroll bar in the manner described below.

FIG. 4 shows a timeline controller 50. Basically, the user controls thetime scale and :he range of time that is visible. The time scale iscontrolled and shown by scalable scroll controller 11. Scalable scrollcontroller 11 also gives the current scale of timeline 14. The selectedtime is shown both in the column of fields 12 and by the indicator 13 ontimeline 14.

Scalable scroll controller 11 is comprised of a horizontal bar 15 andscale controllers 17 and 18. Scalable scroll controller 11 is located ina scroll area 15. By using the mouse or offer cursor positioning meansto position the cursor on horizontal bar 15 and clicking and holdingdown the mouse button, scalable scroll controller 11 will track themovement of the mouse by sliding left and right as the mouse is draggedleft and right, respectively. Scalable scroll controller 11 willcontinue to track the horizontal mouse movements until the mouse buttonis released. All the while that scalable scroll controller 11 is beingmoved, the range of the history being displayed in timeline 14 is alsocorrespondingly shifted according to the horizontal movements ofscalable scroll controller 11.

Scalable scroll controller 11 can also be controlled by disassociatingthe mouse control from the cursor and moving the mouse in a horizontalmotion. For example, the disassociation may be done with a modifiedmouse click and drag, the modification signal being supplied in oneembodiment by a switch (e.g., a key) on a keyboard. Scalable scrollcontroller 11 moves correspondingly to the horizontal movement of themouse. As scalable scroll controller 11 slides left or right, the rangeof history that is displayed is shifted left or right, respectively.

Scalable scroll controller 11 also includes scale controllers 17 and 18.By placing the cursor on and click-dragging either one of scalecontrollers 17 and 18, the scale of timeline 14 may be change. Forexample, by placing a cursor on scale controller 17 and click-draggingto the left, the scale of timeline 14 increases (i.e., the amount oftime covered by the timeline increases), thereby decreasing theresolution of timeline 14. In other words, the magnification at whichone observes the data (timeline) decreases. Conversely, as scalecontroller 17 is moved to the right, the scale of timeline decreases(i.e., the amount of time covered by the timeline decreases), therebyincreasing the resolution of timeline 14. Click-dragging scalecontroller 18 to the right or left has the same effect of increasing ordecreasing, respectively, the scale of timeline 14.

As the scale of timeline 14 changes, so too is the appearance of thetimeline altered to reflect the new scale. In addition, the appearanceof scalable scroll controller 11 also changes with the change of scaleof timeline 14. For example, if the time scale is compressed such thatthe portion of the total history that is shown in timeline 14 isincreased, then the width of horizontal bar 15 is increasedproportionally. If time scale is compressed to the point where the totalhistory is shown in timeline 14, then the width of horizontal bar 15,including scale controllers 17 and 18, expands to fill scroll area 16.

FIG. 5 shows screen shots 25–30 of timeline 14 at various scales rangingfrom decades to seconds. The selected time is shown by the column offields 12. The column of fields 12 is divided into rows 19–24,corresponding to convenient time fields, shown on the left-hard side,and the selected time units, shown on the right-hand side. Row 19 givesthe year field (Year) and the selected year unit (1975). Row 20 givesthe month field (Month) and the selected month unit (January). Row 21gives the day field (Day) and the selected day unit (17th). Row 22 givesthe hour field (Hour) and the selected hour unit (11 am). Row 23 givesthe minute field (Minute) and the selected minute unit (:05). Row 24gives the seconds field (Second) and the selected second unit (:13).Thus, the selected time in screen shot 25 in FIG. 5A is 13 seconds past11:05 am of Jan. 17, 1975.

It can be seen from screen shots 25–30 that timeline 14 looks differentfor different time scales, even though they represent the same selectedtime (i.e., 11:05:03 am Jan. 17, 1975). Screen shot 25 depicts timeline14 wherein the scale is in years. The selected field is depicted byshading the correct row 19–24 which corresponds to that particularscale. In screen shot 25, since the year field was selected, row 19which corresponds to the year field, is shaded. The selected year,“1975”, is shown on the right-hand side of roof 19. Similarly, screenshot 26 depicts timeline 14 wherein the scale is in months. Accordingly,row 20 which corresponds to the month field, is shaded. Likewise, screenshots 27–30 depict timeline 14 wherein the scale is in days, hours,minutes, and seconds, respectively.

It can be seen from screen shots 25–30 of FIG. 5 that as the scale isdecreased, the resolution of timeline 14 is increased. Screen shot 25shows the scale in years. Timeline 14 gives a range or approximately adecade. This allows the user to select a time to a resolution of years.Screen shot 26 shows the scale in months. Its timeline gives a range ofapproximately two years. This allows the user to select a time to aresolution of months instead of years. As the scale is decreased, theresolution increases. Screen shot 30 shows the scale in seconds. Therange of timelife 14 for screen shot 30 covers a range of approximately15 seconds. This allows the user to select a time to a resolution ofseconds. Thus, this embodiment of the present invention allows the userto select a particular time, within seconds, from a range of a century.

The fields and the selected times are highlighted up to the currentfinest-resolved selected time. Finer scales and units are dim, incomparison. This is illustrated in FIG. 5. In screen shot 25, theselected scale is in years and the corresponding selected time unit is1975. Thus, for that resolution, the “Year” field and the “1975” timeunit are highlighted. As the resolution increases, as in screen shot 28,it can be seen that the prior selected fields (i.e., “Year”, “month”,and “Day”) and selected time units (“1975”, “Jan”, and “17th”) remainhighlighted. The current selected field (“Hour”) and the currentselected time unit (“11 am”) are also highlighted. Yet the finer fields(“Minute” and “Second”) and time units (“:05:” and “:13”) which have yetto be selected by the user, remain dimmed.

As shown in FIG. 5, indicator 13 includes an icon and a vertical linesegment. The icon for indicator 13 resides halfway along the top oftimeline 14. The vertical line segment extends from the bottom of theindicator icon, through timeline 14, to the bottom edge of timeline 14.The line segment intersects timeline 14 which corresponds to theselected time (also displayed by the column of fields 12) As the scaleis changed, the icon representing the indicator also changes to reflectthe change in the scale. For example, the indicator icon representingthe year scale, is in the shape of an hourglass, as shown in screen shot25. The icon representing indicator 13 changes to the shape of acalendar for time scales of months and days, as shown in screen shots 26and 27, respectively. The icon representing indicator 13 changes to theshape of a clock for time scales of hours, minutes and seconds, as shownin screen shots 28, 29, and 30, respectively. Part of the clock-shapedindicator 13 corresponding to the seconds scale, is shaded.

Once the desired field has been selected, the user may then select anytime unit within that field. For example, in screen shot 26 of FIG. 5,since the user has selected the month scale, the user may now selecttime units corresponding to months of the year (e.g., January–December).Furthermore, once a desired field has been selected, the scale can,nevertheless, be changed within that field. For example, in screen shot25 of FIG. 5, even though the selected field is “Years”, the user maychange the scale of timeline 14 so long as what is displayed remains inyears. Thus, timeline 14 may have an enlarged scale such that a decadeis shown or may have a reduced scale such that only half a dozen yearsare shown. Likewise, in screen shot 27, given the same field (“Day”),timeline 14 may have a scale encompassing 12 days (as shown) or may havea reduced scale encompassing only a couple of days.

It Would he apparent to those skilled in the art that the timelinecontroller can be linked to and access a database. Some sample databasesinclude musical compositions, films, textual documents, etc. Forexample, by linking the timeline controller to a musical composition,the user may easily access one particular note among thousands withinthe composition. This is accomplished by assigning each note to oneparticular incremental time unit. The user may “zoom cut” to locate thegeneral area wherein the desired note resides. The user then “zooms in”on the desired note by successively decreasing the scale (increasing themagnitude) while keeping the note within the range until the desirednote is located. Thus, the user may select a desired note by “zoomingin” on it in the same manner as one would “zoom in” on a particulardate/time. In other words, pieces of data within a database may besequentially linked to incremental time intervals of the timelinecontroller. As example of this concept is described further below,wherein the frames of a video (or film) may be easily accessed.

FIG. 6 shows an alternative embodiment of the present invention asapplied to multimedia editing, the multimedia controller. Basically, themultimedia controller operates in the same manner as the timelinecontroller described above. Similar to the timeline controller, the usercontrols the time scale. However, in the multimedia controller, the usercontrols the selection of a video frame or audio data point within thattime scale, instead of a time unit. The scale is controlled in the samemanner as described in the timeline controller. An individual framewithin that scale is selected in the same manner as a particular timeunit was selected in the timeline controller (i.e., manipulating thetimeline or moving the indicator along the timeline).

In a window 210, a video track 200 contains a set of video clips 42 a to42 d. In addition, a set of audio clips is also shown in a set of audiotracks 204. Video clips 42 a to 42 d can be removed from video track200. Additional video clips may be inserted into video track 200 asnecessary in a variety of ways, as desired by the user. Similarly, audioclips may also be inserted and removed at all points in audio track 204.

In FIG. 6, timeline 36 is divided into units of time which are furthersubdivided into individual frames in multimedia clips. Thus, the presentinvention enables a user to select one particular frame among any numberof frames in a video clip. The selected time and frame is shown by theposition of an indicator 33 a along timeline 36. A correspondingindicator 38 b is also displayed on horizontal bar 15 of scalable scrollcontroller 11 if horizontal bar 15 is in the appropriate section ofscroll area 16. In addition, there is a selected time display 202 thatis used to display the exact selected time. In FIG. 6, the currentlyselected frame corresponds to 0 minutes, 34 seconds and 27 frames intothe clip.

The frame corresponding to the selected time/frame is pulled from themultimedia clip and displayed in another window (not shown). As the userchanges the selected time/frame, the corresponding frame is pulled fromthe multimedia clip and displayed.

Context frames 42 are sampled at the beginning of each portion of thevideo clip and displayed in the appropriate segment of video track 200.Context frames 42 are used to gave the user a reference point as to thesection of the video clip which is represented by that section of thetimeline. Context frames 42 scroll in concert with timeline 36. If theuser positions the cursor over a context frame 42 and “clicks” the mousebutton, the multimedia controller responds in the same manner as whentimeline 36 is “clicked”.

One aspect of the multimedia controller is that it can be used toperform functions similar to the “jog” functions found on some high-endvideotape decks. To scan over a video sequence, the user can zoom in(i.e., decrease the scale) so that the whole scene is covered intimeline 36. The user accomplishes this by adjusting the scale inreference to context frames 42. Indicator 38 a is then dragged acrosstimeline 36 to simulate the “jog” control, but at an adjustable scale.

As seen in FIG. 6, the size of scalable scroll controller 11 almostoccupies all of scrollable area 16 as all available video and audioclips are contained in video track 200 and audio tracks 204,respectively. The total amount of time shown in video track 200 andaudio track 204 when scalable scroll controller 11 occupies all, ormost, of scrollable area 16 includes some blank portion that is notoccupied by video or audio clips, respectively. This is to allow theuser to insert video or audio clips as desired at the end of therespective video or audio tracks. In addition, the total amount of timeshown in video track 200 and audio track 204 includes some blank portionthat is not occupied by video or audio clips, respectively, whenscalable scroll controller 11 is moved to the right most position ofscrollable area 16.

FIG. 7 illustrates where scalable scroll controller 11 has been used todecrease the time scale that is shown in timeline 36. That is, theresolution of the time scale has been increased in window 210. The userhas clicked-dragged scale controller 18 to the left to decrease thescale. Horizontal bar 15 is shortened accordingly to reflect that thewidth of scalable scroll controller 11 only occupies a proportionalamount of scrollable area 16 as timeline 36 only represents a portion ofthe total timeline.

Alternatively, the user could have also clicked-dragged scale controller17 to the right to decrease the scale. In either case, the scalecontroller that is not click-dragged remains in the substantially thesame position. In alternate embodiments, the scale controller that isnot click-dragged may mote the same distance in the opposite directionof the scale controller that is click-dragged such that the center ofscalable scroll controller 11 remains in the same position.

Inspecting video track 200, it can be seen that the video clip 42 a islonger in window 210 as the scale of timeline 36 has beer changed. Inaddition, as here is more space to display the video clips that are inthe current scale, more preview information, such as the first frame ofvideo clip 42 b, can now be seen. In addition, there is also more spaceto display the audio clips in the current scale, as can be seen byexamining audio track 204.

In FIG. 8, scale controller 18 has been click-dragged to the left evenfurther to decrease the scale of information that is displayed in window210. The size of horizontal bar 15 and, thereby, scalable controller,scale controller 18 has been click-dragged to the left even further todecrease the scale of information that is displayed in window 210. Thesize of horizontal bar 15 and, thereby, scalable scroll controller 11,is decreased accordingly.

FIG. 9 illustrates where the user has click-dragged horizontal bar 15 tothe right to scan the information that is in video track 200 and audiotrack 204. Thus, the range of the video and audio tracks that are beingdisplayed is shifted to the right.

A method of the present invention will now be described by referring toFIG. 10. After computer system 100 has been initialized and allinstructions and code segments have been loaded and executed such thatdisplay 121 shows window 210, the first step 802 is to receive a userselection event to the computer system 100 as shown in FIG. 2. Userselection events can include events such as cursor movement andselection events or character entry events. These events are passed toan operating system software and handled by the operating systemsoftware.

In step 804, computer system 100 detects whether the user selectionevent is a selection event on a scale controller. Specifically, thecomputer system 100 detects whether the user has used a cursor controldevice to position the cursor on and selected either scale controller 17or 18. If so, operation continues with step 806. Otherwise, operationcontinues with step 808.

Under step 806, if the user has selected scale controller 17 or 18, thena new scale upon which the level of detail of the data that is displayeddepends is generated according to the movement of scale controller 17 or18. The scale is used to create a range that is used to displaycontinuous portions of the data set to the user. Thus, what is depictedby the range is dependent on the scale selected. As the scale isincreased, the magnification level decreases. In other words, the rangewill span a broad portion of the data set. However, the resolution willbe low. Conversely, if the scale is decreased, the magnification levelincreases and smaller portions of the data set are depicted by therange. However, the resolution increases.

In one embodiment, the initial scale that is used allows the completeset of data in the broad data set to be displayed in window 210. Thus,scalable scroll controller 11 is approximately the same width as scrollarea 16. This allows the user to see the complete set of data. Inanother embodiment, a predetermined scale is used such that only apredetermined portion of the data is displayed. For example, a scale ischosen such that only one-quarter of the broad data set is displayed.

Once the user has released the selection on scale controller 17 or 18,then operation of the scalable scroll controller is complete until thenext time a portion of the scalable scroll controller is selected.

In block 808, it is determined whether the user has selected horizontalbar 15. Thus, it is determined if the user has moved the cursor to beover horizontal bar 15 and used the cursor control device to selecthorizontal bar 15. If so, operation continues with step 810. Otherwise,operation continues with block 812.

When the user has selected horizontal bar 15, the range of the data setthat is displayed may be manipulated and shifted horizontally accordingto the movement of the horizontal bar 15. For example, if horizontal bar15 is moved to the left, then the range of the data set that isdisplayed as shifted the left. In another embodiment, if a vertical baris used, then the range is shifted vertically. As discussed above, whenhorizontal bar 15 is moved to the farthest right, a portion of unusedarea is displayed for the user to add additional data by an operationsuch as a drag-and-drop of additional data.

In block 812, if the user selection event is not determined to be aselection on the scale controller or the horizontal bar, then the userselection event is passed on to other event handlers in the operatingsystem software of computer system 100.

FIG. 11 is a block diagram of main memory 104, containing functionalblocks configured in accordance to one embodiment that is able toperform the method as described in FIG. 10. FIG. 11 contains a cursorcontrol event handling unit 1110 communicating with an operating system1108. Cursor control event handling unit receives all cursor controlevents such as cursor movement commands, selection commands (e.g.,click), and drag commands (e.g., click-and-drag). Operating system 1108provides system control functions for a computer system such as computersystem 100. Operating system 1108 also performs functions such as dataretrieval and display.

Main memory 104 also contains a window object 1106 that controls thedisplay of a window such as window 210. Window object 1106 providessupport for a scale calculation unit 1104 and a scalable scrollcontroller object 1102. Scalable scroll bar controller object 1102 isresponsible for the display and control of a scalable scroll controllersuch as scalable scroll controller 11. Scale calculate on unit 1104 isused to calculate the appropriate scale and range for displayinginformation in a window object based on the configuration of a scalablescroll controller.

1. A method for accessing a data field comprising: providing a scalablescroll controller including a scale controller to modify a scale forcontrolling a magnification for accessing data within the data field;receiving a user event to modify scale through the scale controller;automatically adjusting the scalable scroll controller to maintain acenter of the scalable scroll controller unchanged in response toreceiving the user event; and adjusting the scale based on the receivingof the user event to modify scale through the scale controller.
 2. Themethod of claim 1, further comprising: receiving a selection of thescale controller.
 3. The method of claim 1, wherein receiving the userevent includes receiving a movement of a cursor control device along afirst axis.
 4. The method of claim 1, wherein the scalable scrollcontroller has a width, and the scale is proportional to the width ofthe scalable scroll controller.
 5. The method of claim 1, wherein thescale controller does not change size as the scale is changed.
 6. Themethod of claim 1, wherein receiving the user event includes receiving amovement command from a voice command recognition unit.
 7. An articlecomprising a computer readable medium having instructions stored thereonfor accessing a data field, which when executed, causes: provision of ascalable scroll controller including a scale controller to modify ascale for controlling a magnification for accessing data within the datafield; reception of a user event to modify scale through the scalecontroller; automatic adjustment of the scalable scroll controller tomaintain a center of the scalable scroll controller unchanged inresponse to receiving the user event; and adjustment of the scale basedon the reception of the user event to modify scale through the scalecontroller.
 8. The article of claim 7, wherein the instructions furthercause reception of a selection of the scale controller.
 9. The articleof claim 7, wherein reception of the user event includes reception of amovement signal of a cursor control device along a first axis.
 10. Thearticle of claim 7, wherein the scalable scroll controller has a widthand the computer readable medium further having instructions storedthereon, which when executed, causes: adjustment of the scale to beproportional to the width of the scalable scroll controller.
 11. Thearticle of claim 7, wherein the scale controller does not change size asthe scale is changed.
 12. The article of claim 7, wherein reception ofthe user event includes reception of a movement command from a voicecommand recognition unit.
 13. An apparatus for accessing a data field,the apparatus comprising: means for providing a scalable scrollcontroller including a scale controller to modify a scale forcontrolling a magnification for accessing data within the data field;means for receiving a user event to modify scale through the scalecontroller; means for automatically adjusting the scalable scrollcontroller to maintain a center of the scalable scroll controllerunchanged in response to receiving the user event; and means foradjusting the scale based on the user event to modify scale through thescale controller.
 14. The apparatus of claim 13, further comprising:means for receiving a selection of the scale controller.
 15. Theapparatus of claim 13, wherein the means for receiving the user event isprovided by means for receiving a movement of a cursor control devicealong a first axis.
 16. The apparatus of claim 13, wherein the scalablescroll controller has a width, and the scale is proportional to thewidth of the scalable scroll controller.
 17. The apparatus of claim 13,wherein the scale controller does not change size as the scale ischanged.
 18. The apparatus of claim 13, wherein the means for receivingthe user event is provided by means for receiving a movement commandfrom a voice command recognition unit.
 19. An apparatus for accessing adata field, the apparatus comprising: a scalable scroll controllerincluding a scale controller configured to modify a scale forcontrolling a magnification for accessing data within the data field; auser event detection unit configured to detect a user event to modifyscale through the scale controller; an automatic adjustment unitconfigured to automatically adjust the scalable scroll controller tomaintain a center of the scalable scroll controller unchanged inresponse to receiving the user event; and a scale adjustment unitconfigured to adjust the scale based on the user event to modify scalethrough the scale controller.
 20. The apparatus of claim 19, wherein theuser event detection unit is configured to receive a signal from acursor control device.
 21. The apparatus of claim 19, wherein the userevent detection unit is configured to receive a movement of a cursorcontrol device along a first axis.
 22. The apparatus of claim 19,wherein the scalable scroll controller has a width, and the scale isproportional to the width of the scalable scroll controller.
 23. Theapparatus of claim 19, wherein the user event detection unit isconfigured to receive a signal from a voice command recognition unit.24. The apparatus of claim 19, wherein the user event detection unit isconfigured to receive a movement command from a voice commandrecognition unit.